@echo off
REM ===== 新增：锁定 Python 版本 =====
set "PYEXE=py -3.11"
REM 如果已在 3.11 虚拟环境中，可改成 set "PYEXE=python"

REM ===== 智能选择解释器 =====
REM 如果当前路径下存在 %VIRTUAL_ENV% 或 where python 找到 3.11，则使用 python，否则回退 py -3.11
for /f "delims=" %%i in ('python -c "import sys;print(sys.version_info[:2]==(3,11))" 2^>nul') do set IS311=%%i
if /i "%IS311%"=="True" (
    set "PYEXE=python"
) else (
    set "PYEXE=py -3.11"
)

color 0A
chcp 65001 >nul
echo ========================================
echo 开始打包过程
echo 当前目录: %CD%
echo ========================================

REM ===== 新增：显示当前解释器信息 =====
%PYEXE% -c "import sys,platform,site,os;print(f'Python: {sys.version.split()[0]}  |  exe: {sys.executable}')"

echo.
echo 检查必需文件...
%PYEXE% check_files.py
color 0A
if errorlevel 1 (
    echo 文件检查失败，终止打包过程
    pause
    exit /b 1
)

echo.
echo 清理旧的构建文件...
if exist "build" rd /s /q "build"
if exist "dist" rd /s /q "dist"
if exist "*.spec" del /f /q *.spec
color 0A

REM =======================================
REM 安装/升级依赖（统一使用 %PYEXE% ）
REM =======================================
%PYEXE% -m pip install --upgrade pip
%PYEXE% -m pip install -r requirements.txt
%PYEXE% -m pip install cython wheel
%PYEXE% -m pip install pyinstaller==6.3.0

REM ===== 新增：重新编译 Cython 扩展 =====
%PYEXE% setup.py build_ext --inplace --force
if errorlevel 1 (
    echo Cython 扩展编译失败，终止打包
    pause
    exit /b 1
)

echo.
echo 正在打包程序...
%PYEXE% build.py
color 0A

echo.
if exist "dist\成帧数据应用软件.exe" (
    echo ========================================
    echo 打包成功！
    echo 可执行文件位置: %CD%\dist\成帧数据应用软件.exe
    echo ========================================
) else (
    echo ========================================
    echo 警告：未找到生成的exe文件！
    echo 检查build\成帧数据应用软件\warn-成帧数据应用软件.txt中的警告信息
    echo ========================================
)

echo.
echo 按任意键继续...
pause
color 0A
